package com.zhiyou100.taxi.entity;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class CarExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public CarExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andCarIdIsNull() {
            addCriterion("CAR_ID is null");
            return (Criteria) this;
        }

        public Criteria andCarIdIsNotNull() {
            addCriterion("CAR_ID is not null");
            return (Criteria) this;
        }

        public Criteria andCarIdEqualTo(String value) {
            addCriterion("CAR_ID =", value, "carId");
            return (Criteria) this;
        }

        public Criteria andCarIdNotEqualTo(String value) {
            addCriterion("CAR_ID <>", value, "carId");
            return (Criteria) this;
        }

        public Criteria andCarIdGreaterThan(String value) {
            addCriterion("CAR_ID >", value, "carId");
            return (Criteria) this;
        }

        public Criteria andCarIdGreaterThanOrEqualTo(String value) {
            addCriterion("CAR_ID >=", value, "carId");
            return (Criteria) this;
        }

        public Criteria andCarIdLessThan(String value) {
            addCriterion("CAR_ID <", value, "carId");
            return (Criteria) this;
        }

        public Criteria andCarIdLessThanOrEqualTo(String value) {
            addCriterion("CAR_ID <=", value, "carId");
            return (Criteria) this;
        }

        public Criteria andCarIdLike(String value) {
            addCriterion("CAR_ID like", value, "carId");
            return (Criteria) this;
        }

        public Criteria andCarIdNotLike(String value) {
            addCriterion("CAR_ID not like", value, "carId");
            return (Criteria) this;
        }

        public Criteria andCarIdIn(List<String> values) {
            addCriterion("CAR_ID in", values, "carId");
            return (Criteria) this;
        }

        public Criteria andCarIdNotIn(List<String> values) {
            addCriterion("CAR_ID not in", values, "carId");
            return (Criteria) this;
        }

        public Criteria andCarIdBetween(String value1, String value2) {
            addCriterion("CAR_ID between", value1, value2, "carId");
            return (Criteria) this;
        }

        public Criteria andCarIdNotBetween(String value1, String value2) {
            addCriterion("CAR_ID not between", value1, value2, "carId");
            return (Criteria) this;
        }

        public Criteria andCarLogoIsNull() {
            addCriterion("CAR_LOGO is null");
            return (Criteria) this;
        }

        public Criteria andCarLogoIsNotNull() {
            addCriterion("CAR_LOGO is not null");
            return (Criteria) this;
        }

        public Criteria andCarLogoEqualTo(String value) {
            addCriterion("CAR_LOGO =", value, "carLogo");
            return (Criteria) this;
        }

        public Criteria andCarLogoNotEqualTo(String value) {
            addCriterion("CAR_LOGO <>", value, "carLogo");
            return (Criteria) this;
        }

        public Criteria andCarLogoGreaterThan(String value) {
            addCriterion("CAR_LOGO >", value, "carLogo");
            return (Criteria) this;
        }

        public Criteria andCarLogoGreaterThanOrEqualTo(String value) {
            addCriterion("CAR_LOGO >=", value, "carLogo");
            return (Criteria) this;
        }

        public Criteria andCarLogoLessThan(String value) {
            addCriterion("CAR_LOGO <", value, "carLogo");
            return (Criteria) this;
        }

        public Criteria andCarLogoLessThanOrEqualTo(String value) {
            addCriterion("CAR_LOGO <=", value, "carLogo");
            return (Criteria) this;
        }

        public Criteria andCarLogoLike(String value) {
            addCriterion("CAR_LOGO like", value, "carLogo");
            return (Criteria) this;
        }

        public Criteria andCarLogoNotLike(String value) {
            addCriterion("CAR_LOGO not like", value, "carLogo");
            return (Criteria) this;
        }

        public Criteria andCarLogoIn(List<String> values) {
            addCriterion("CAR_LOGO in", values, "carLogo");
            return (Criteria) this;
        }

        public Criteria andCarLogoNotIn(List<String> values) {
            addCriterion("CAR_LOGO not in", values, "carLogo");
            return (Criteria) this;
        }

        public Criteria andCarLogoBetween(String value1, String value2) {
            addCriterion("CAR_LOGO between", value1, value2, "carLogo");
            return (Criteria) this;
        }

        public Criteria andCarLogoNotBetween(String value1, String value2) {
            addCriterion("CAR_LOGO not between", value1, value2, "carLogo");
            return (Criteria) this;
        }

        public Criteria andCarNumberIsNull() {
            addCriterion("CAR_NUMBER is null");
            return (Criteria) this;
        }

        public Criteria andCarNumberIsNotNull() {
            addCriterion("CAR_NUMBER is not null");
            return (Criteria) this;
        }

        public Criteria andCarNumberEqualTo(String value) {
            addCriterion("CAR_NUMBER =", value, "carNumber");
            return (Criteria) this;
        }

        public Criteria andCarNumberNotEqualTo(String value) {
            addCriterion("CAR_NUMBER <>", value, "carNumber");
            return (Criteria) this;
        }

        public Criteria andCarNumberGreaterThan(String value) {
            addCriterion("CAR_NUMBER >", value, "carNumber");
            return (Criteria) this;
        }

        public Criteria andCarNumberGreaterThanOrEqualTo(String value) {
            addCriterion("CAR_NUMBER >=", value, "carNumber");
            return (Criteria) this;
        }

        public Criteria andCarNumberLessThan(String value) {
            addCriterion("CAR_NUMBER <", value, "carNumber");
            return (Criteria) this;
        }

        public Criteria andCarNumberLessThanOrEqualTo(String value) {
            addCriterion("CAR_NUMBER <=", value, "carNumber");
            return (Criteria) this;
        }

        public Criteria andCarNumberLike(String value) {
            addCriterion("CAR_NUMBER like", value, "carNumber");
            return (Criteria) this;
        }

        public Criteria andCarNumberNotLike(String value) {
            addCriterion("CAR_NUMBER not like", value, "carNumber");
            return (Criteria) this;
        }

        public Criteria andCarNumberIn(List<String> values) {
            addCriterion("CAR_NUMBER in", values, "carNumber");
            return (Criteria) this;
        }

        public Criteria andCarNumberNotIn(List<String> values) {
            addCriterion("CAR_NUMBER not in", values, "carNumber");
            return (Criteria) this;
        }

        public Criteria andCarNumberBetween(String value1, String value2) {
            addCriterion("CAR_NUMBER between", value1, value2, "carNumber");
            return (Criteria) this;
        }

        public Criteria andCarNumberNotBetween(String value1, String value2) {
            addCriterion("CAR_NUMBER not between", value1, value2, "carNumber");
            return (Criteria) this;
        }

        public Criteria andCarTimeIsNull() {
            addCriterion("CAR_TIME is null");
            return (Criteria) this;
        }

        public Criteria andCarTimeIsNotNull() {
            addCriterion("CAR_TIME is not null");
            return (Criteria) this;
        }

        public Criteria andCarTimeEqualTo(Date value) {
            addCriterion("CAR_TIME =", value, "carTime");
            return (Criteria) this;
        }

        public Criteria andCarTimeNotEqualTo(Date value) {
            addCriterion("CAR_TIME <>", value, "carTime");
            return (Criteria) this;
        }

        public Criteria andCarTimeGreaterThan(Date value) {
            addCriterion("CAR_TIME >", value, "carTime");
            return (Criteria) this;
        }

        public Criteria andCarTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("CAR_TIME >=", value, "carTime");
            return (Criteria) this;
        }

        public Criteria andCarTimeLessThan(Date value) {
            addCriterion("CAR_TIME <", value, "carTime");
            return (Criteria) this;
        }

        public Criteria andCarTimeLessThanOrEqualTo(Date value) {
            addCriterion("CAR_TIME <=", value, "carTime");
            return (Criteria) this;
        }

        public Criteria andCarTimeIn(List<Date> values) {
            addCriterion("CAR_TIME in", values, "carTime");
            return (Criteria) this;
        }

        public Criteria andCarTimeNotIn(List<Date> values) {
            addCriterion("CAR_TIME not in", values, "carTime");
            return (Criteria) this;
        }

        public Criteria andCarTimeBetween(Date value1, Date value2) {
            addCriterion("CAR_TIME between", value1, value2, "carTime");
            return (Criteria) this;
        }

        public Criteria andCarTimeNotBetween(Date value1, Date value2) {
            addCriterion("CAR_TIME not between", value1, value2, "carTime");
            return (Criteria) this;
        }

        public Criteria andCarZuoIsNull() {
            addCriterion("CAR_ZUO is null");
            return (Criteria) this;
        }

        public Criteria andCarZuoIsNotNull() {
            addCriterion("CAR_ZUO is not null");
            return (Criteria) this;
        }

        public Criteria andCarZuoEqualTo(BigDecimal value) {
            addCriterion("CAR_ZUO =", value, "carZuo");
            return (Criteria) this;
        }

        public Criteria andCarZuoNotEqualTo(BigDecimal value) {
            addCriterion("CAR_ZUO <>", value, "carZuo");
            return (Criteria) this;
        }

        public Criteria andCarZuoGreaterThan(BigDecimal value) {
            addCriterion("CAR_ZUO >", value, "carZuo");
            return (Criteria) this;
        }

        public Criteria andCarZuoGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("CAR_ZUO >=", value, "carZuo");
            return (Criteria) this;
        }

        public Criteria andCarZuoLessThan(BigDecimal value) {
            addCriterion("CAR_ZUO <", value, "carZuo");
            return (Criteria) this;
        }

        public Criteria andCarZuoLessThanOrEqualTo(BigDecimal value) {
            addCriterion("CAR_ZUO <=", value, "carZuo");
            return (Criteria) this;
        }

        public Criteria andCarZuoIn(List<BigDecimal> values) {
            addCriterion("CAR_ZUO in", values, "carZuo");
            return (Criteria) this;
        }

        public Criteria andCarZuoNotIn(List<BigDecimal> values) {
            addCriterion("CAR_ZUO not in", values, "carZuo");
            return (Criteria) this;
        }

        public Criteria andCarZuoBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("CAR_ZUO between", value1, value2, "carZuo");
            return (Criteria) this;
        }

        public Criteria andCarZuoNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("CAR_ZUO not between", value1, value2, "carZuo");
            return (Criteria) this;
        }

        public Criteria andCarColorIsNull() {
            addCriterion("CAR_COLOR is null");
            return (Criteria) this;
        }

        public Criteria andCarColorIsNotNull() {
            addCriterion("CAR_COLOR is not null");
            return (Criteria) this;
        }

        public Criteria andCarColorEqualTo(String value) {
            addCriterion("CAR_COLOR =", value, "carColor");
            return (Criteria) this;
        }

        public Criteria andCarColorNotEqualTo(String value) {
            addCriterion("CAR_COLOR <>", value, "carColor");
            return (Criteria) this;
        }

        public Criteria andCarColorGreaterThan(String value) {
            addCriterion("CAR_COLOR >", value, "carColor");
            return (Criteria) this;
        }

        public Criteria andCarColorGreaterThanOrEqualTo(String value) {
            addCriterion("CAR_COLOR >=", value, "carColor");
            return (Criteria) this;
        }

        public Criteria andCarColorLessThan(String value) {
            addCriterion("CAR_COLOR <", value, "carColor");
            return (Criteria) this;
        }

        public Criteria andCarColorLessThanOrEqualTo(String value) {
            addCriterion("CAR_COLOR <=", value, "carColor");
            return (Criteria) this;
        }

        public Criteria andCarColorLike(String value) {
            addCriterion("CAR_COLOR like", value, "carColor");
            return (Criteria) this;
        }

        public Criteria andCarColorNotLike(String value) {
            addCriterion("CAR_COLOR not like", value, "carColor");
            return (Criteria) this;
        }

        public Criteria andCarColorIn(List<String> values) {
            addCriterion("CAR_COLOR in", values, "carColor");
            return (Criteria) this;
        }

        public Criteria andCarColorNotIn(List<String> values) {
            addCriterion("CAR_COLOR not in", values, "carColor");
            return (Criteria) this;
        }

        public Criteria andCarColorBetween(String value1, String value2) {
            addCriterion("CAR_COLOR between", value1, value2, "carColor");
            return (Criteria) this;
        }

        public Criteria andCarColorNotBetween(String value1, String value2) {
            addCriterion("CAR_COLOR not between", value1, value2, "carColor");
            return (Criteria) this;
        }

        public Criteria andCarPriceIsNull() {
            addCriterion("CAR_PRICE is null");
            return (Criteria) this;
        }

        public Criteria andCarPriceIsNotNull() {
            addCriterion("CAR_PRICE is not null");
            return (Criteria) this;
        }

        public Criteria andCarPriceEqualTo(BigDecimal value) {
            addCriterion("CAR_PRICE =", value, "carPrice");
            return (Criteria) this;
        }

        public Criteria andCarPriceNotEqualTo(BigDecimal value) {
            addCriterion("CAR_PRICE <>", value, "carPrice");
            return (Criteria) this;
        }

        public Criteria andCarPriceGreaterThan(BigDecimal value) {
            addCriterion("CAR_PRICE >", value, "carPrice");
            return (Criteria) this;
        }

        public Criteria andCarPriceGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("CAR_PRICE >=", value, "carPrice");
            return (Criteria) this;
        }

        public Criteria andCarPriceLessThan(BigDecimal value) {
            addCriterion("CAR_PRICE <", value, "carPrice");
            return (Criteria) this;
        }

        public Criteria andCarPriceLessThanOrEqualTo(BigDecimal value) {
            addCriterion("CAR_PRICE <=", value, "carPrice");
            return (Criteria) this;
        }

        public Criteria andCarPriceIn(List<BigDecimal> values) {
            addCriterion("CAR_PRICE in", values, "carPrice");
            return (Criteria) this;
        }

        public Criteria andCarPriceNotIn(List<BigDecimal> values) {
            addCriterion("CAR_PRICE not in", values, "carPrice");
            return (Criteria) this;
        }

        public Criteria andCarPriceBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("CAR_PRICE between", value1, value2, "carPrice");
            return (Criteria) this;
        }

        public Criteria andCarPriceNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("CAR_PRICE not between", value1, value2, "carPrice");
            return (Criteria) this;
        }

        public Criteria andCarPhotoIsNull() {
            addCriterion("CAR_PHOTO is null");
            return (Criteria) this;
        }

        public Criteria andCarPhotoIsNotNull() {
            addCriterion("CAR_PHOTO is not null");
            return (Criteria) this;
        }

        public Criteria andCarPhotoEqualTo(String value) {
            addCriterion("CAR_PHOTO =", value, "carPhoto");
            return (Criteria) this;
        }

        public Criteria andCarPhotoNotEqualTo(String value) {
            addCriterion("CAR_PHOTO <>", value, "carPhoto");
            return (Criteria) this;
        }

        public Criteria andCarPhotoGreaterThan(String value) {
            addCriterion("CAR_PHOTO >", value, "carPhoto");
            return (Criteria) this;
        }

        public Criteria andCarPhotoGreaterThanOrEqualTo(String value) {
            addCriterion("CAR_PHOTO >=", value, "carPhoto");
            return (Criteria) this;
        }

        public Criteria andCarPhotoLessThan(String value) {
            addCriterion("CAR_PHOTO <", value, "carPhoto");
            return (Criteria) this;
        }

        public Criteria andCarPhotoLessThanOrEqualTo(String value) {
            addCriterion("CAR_PHOTO <=", value, "carPhoto");
            return (Criteria) this;
        }

        public Criteria andCarPhotoLike(String value) {
            addCriterion("CAR_PHOTO like", value, "carPhoto");
            return (Criteria) this;
        }

        public Criteria andCarPhotoNotLike(String value) {
            addCriterion("CAR_PHOTO not like", value, "carPhoto");
            return (Criteria) this;
        }

        public Criteria andCarPhotoIn(List<String> values) {
            addCriterion("CAR_PHOTO in", values, "carPhoto");
            return (Criteria) this;
        }

        public Criteria andCarPhotoNotIn(List<String> values) {
            addCriterion("CAR_PHOTO not in", values, "carPhoto");
            return (Criteria) this;
        }

        public Criteria andCarPhotoBetween(String value1, String value2) {
            addCriterion("CAR_PHOTO between", value1, value2, "carPhoto");
            return (Criteria) this;
        }

        public Criteria andCarPhotoNotBetween(String value1, String value2) {
            addCriterion("CAR_PHOTO not between", value1, value2, "carPhoto");
            return (Criteria) this;
        }

        public Criteria andCarStatusIsNull() {
            addCriterion("CAR_STATUS is null");
            return (Criteria) this;
        }

        public Criteria andCarStatusIsNotNull() {
            addCriterion("CAR_STATUS is not null");
            return (Criteria) this;
        }

        public Criteria andCarStatusEqualTo(BigDecimal value) {
            addCriterion("CAR_STATUS =", value, "carStatus");
            return (Criteria) this;
        }

        public Criteria andCarStatusNotEqualTo(BigDecimal value) {
            addCriterion("CAR_STATUS <>", value, "carStatus");
            return (Criteria) this;
        }

        public Criteria andCarStatusGreaterThan(BigDecimal value) {
            addCriterion("CAR_STATUS >", value, "carStatus");
            return (Criteria) this;
        }

        public Criteria andCarStatusGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("CAR_STATUS >=", value, "carStatus");
            return (Criteria) this;
        }

        public Criteria andCarStatusLessThan(BigDecimal value) {
            addCriterion("CAR_STATUS <", value, "carStatus");
            return (Criteria) this;
        }

        public Criteria andCarStatusLessThanOrEqualTo(BigDecimal value) {
            addCriterion("CAR_STATUS <=", value, "carStatus");
            return (Criteria) this;
        }

        public Criteria andCarStatusIn(List<BigDecimal> values) {
            addCriterion("CAR_STATUS in", values, "carStatus");
            return (Criteria) this;
        }

        public Criteria andCarStatusNotIn(List<BigDecimal> values) {
            addCriterion("CAR_STATUS not in", values, "carStatus");
            return (Criteria) this;
        }

        public Criteria andCarStatusBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("CAR_STATUS between", value1, value2, "carStatus");
            return (Criteria) this;
        }

        public Criteria andCarStatusNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("CAR_STATUS not between", value1, value2, "carStatus");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}